NEWS-2.5.0
= Welcome to Freeciv 2.5.0 = Thanks again to all our developers, who continue to work so hard. This release includes lots of changes relative to 2.4.x; the significant ones are outlined below. Bug fixes also included in the 2.4 line are not listed. Those who are interested in seeing the detailed changes should check the ChangeLog file, linked above. = What's changed since 2.4.0 = The main changes in Freeciv 2.5 are the inclusion of the 'civ2civ3' ruleset, and much more flexibility for those creating their own rulesets. The AI has also had some improvements. As is usual for major releases, 2.5 clients cannot interoperate with pre-2.5 servers, and vice versa. Pre-2.5 savegames can however be loaded into 2.5, and in most cases, the supplied rulesets have not changed so much as to make it difficult to complete a game started with 2.4.x's rules. Server / General Changes affecting players (supplied rulesets) A new ruleset civ2civ3 is included, an evolution of the civ2_3 ruleset by David Fernandez (bardo). This has some elements from Civ3, and is also designed to reduce the gap between inexperienced and optimal play, and for the AI to play well. It is suitable for single-player and multiplayer games. See doc/README.ruleset_civ2civ3 for more information. * This version of the ruleset is similar to previous versions but does have some changes, including taking advantage of new facilities in the game engine. civ2_3 games started in previous versions of Freeciv cannot be continued with this version. * This is planned to become the default ruleset in a future release. The current default ruleset has been renamed to 'classic' and will continue to be available. From now on the name 'default' will refer to whatever ruleset the running version of Freeciv defaults to. Rules changes affecting all or most rulesets: * (not civ1/civ2) City tiles are no longer an exception to the rule that the 'Bridge Building' technology is required to build roads over rivers. Such cities no longer automatically get roads until the technology is acquired. * (not civ2/multiplayer) Cities suffer random disasters such as population loss and building loss. A new server setting 'disasters' controls their frequency, or disables them entirely. * (not civ1/civ2) 'Barracks' buildings and 'Sun Tzu's War Academy' are now cumulative: if you have both, new units are created at the Hardened veteran level. * In rulesets with nationality tracking (classic, experimental, civ2civ3): ** Citizens now gradually convert to the nationality of the city owner over time, at a ruleset-defined rate. ** Units now have their own nationality, which remains the same even if they are bribed or captured. Settler units founding or adding to cities add citizens of their own nationality. * Changes to what happens if research points go negative (due to transfer costs or tech upkeep): ** A new server setting 'techlossforgiveness' controls whether technologies can be lost at all, and if so, how much debt triggers tech loss. Previously this was controlled by the ruleset; of the supplied rulesets, only the experimental ruleset had this behavior. ** When technology is lost, half the bulb cost of the lost technology is now added on to the current bulb balance (this may not be sufficient to make it positive). The proportion is controlled by the new server setting 'techlossrestore'. The old behavior, where any bulb debt was completely cancelled, can be restored by setting this to -1. * When a freshwater terrain (lake) and an oceanic terrain type become adjacent due to terrain change, the ocean now floods the whole lake. In rulesets which support it, transforming a swamp bordering a lake now results in lake, not ocean. * In games where 'startunits' includes a k)ing unit, such units are also given to new players created as a result of civil war. Rule changes to specific rulesets: * classic: ** The limit on trade routes now depends on what technology you have. You start with 2 per city, and can add one more with each of 'Magnetism' and 'The Corporation'. ** Tracking of citizen nationality is now enabled. See the help for what this means. * experimental: ** New road type 'Maglev', requiring 'Superconductors' and giving unlimited movement to 'Land' units. Regular railroads now give fast but limited movement (each tile takes 1/9 of a movement point). ** Citizens of your enemies in your own cities cause unhappiness, with the amount depending on your government type. ** Partisan appearance now depends on how many of the conquered city's citizens had the nationality of the defeated player, rather than the original city owner. ** Paratroopers can now paradrop directly to a transport in the ocean. ** Most technologies now have 'root_req' requirements, preventing acquisition of the technology by any means (such as trading) unless some key earlier technology is known. ** By default, it is possible to sustain a small research point debt without losing a technology. However, if a technology is lost, the debt may not be completely cancelled. * civ1 and civ2 (to improve their fidelity): ** Maximum number of trade routes per city reduced from 4 to 3. ** When a free tech is granted, it's now chosen randomly, rather than being whatever the player was researching. Other changes: * Nations: ** Added 16 new playable nations to standard rulesets, bringing the total to 555. ** The set of 50 'core' nations introduced in 2.4 are now by default the only nations that will appear in games. To play with the full set of (possibly untranslated) nations, change the nation set in the 'pick nation' dialog, or the server 'nationset' option. ** The pirate and barbarian flags be swapped, so that pirates now have the Jolly Roger, as they should. * In the classic and civ2civ3 rulesets, maps are now generated with scenic tile labels on a few random tiles. These have no gameplay effect. * Minor changes to transport units: ** Units may now load onto and unload from transports that are themselves inside another transport. ** While there is still no way to choose which transport is used if there are several on a tile, units will now prefer the transport with more move points. * Goto / pathfinding: ** You can now set waypoints for groups of units starting on different tiles. ** Improved route planning across 'pontoon bridges' (units bridging water). ** Multiple units working on overlapping connect-with-road or similar projects no longer interrupt each other's work. Changes affecting other rulesets / modders Ruleset authors can control much more of the game behavior. Existing rulesets need changes to work with 2.5; see How to update a ruleset from 2.4 to 2.5 for a minimal recipe. * Movement ** Rulesets can now define new types of paths, replacing hard-coded road, railroad, and river behavior. Up to 8 distinct road and/or river types can be defined. Many previously hardcoded behaviors are now configurable. ** Granularity of movement points ('move_fragments') is now specified by the ruleset, rather than being hardcoded at 1/3. Move rate of 'IgTer' units is also configurable. ** The 'Relaxed' orthogonal move mode for rivers (now also available for roads) no longer gives a movement bonus for diagonal moves unless the path actually links the two tiles. ** Rulesets have more control over when units can enter and leave 'unreachable' transports (usually air transports). By default cargo of such transports can no longer embark/disembark unless in a city or a base native to the transport, but exceptions can be made for individual units. ** Rulesets can allow units to paradrop directly onto transport units. * Terrain and alterations ** More flexible bases: *** Rulesets can now define bases which are allowed on city tiles, or automatically added to cities. *** Ability and time to build bases can now be terrain-dependent. *** Owned bases can now display their owner's flag. ** Rulesets can now change when any of the built-in terrain alterations and transformations can be performed by units (in 2.4, it was only possible to affect irrigation). The full set is: *** Irrig_Possible: is building irrigation possible? *** Mining_Possible: is building a mine possible? *** Irrig_TF_Possible: is changing terrain type with "irrigation" action possible? *** Mining_TF_Possible: is changing terrain type with "mine" action possible? *** Transform_Possible: is "transform" action possible? ** Terrains can now be marked with the 'NotGenerated' flag, so that the map generator will not use them (for use in scenarios, etc). * Units ** The unit 'convert' action is no longer instant; it takes a ruleset-defined time (at least one turn) for suitable units to convert into another type. ** The 'Veteran_Build' effect (used for 'Barracks', etc) can now cause units to gain multiple veteran levels. ** Rulesets are now permitted to contain no city-founding units. * Combat ** Added a general framework for combat value modification based on unit type. The old hardcoded 'AEGIS', 'AirUnit', 'Horse', 'Pikemen', 'Helicopter', and 'Fighter' flags are gone; it's now possible to add similar bonuses with different numeric values, and more of them. ** Whether conquering units reduce city population is now defined by the ruleset, per unit class ('KillCitizen'). ** Units defending while on non-native terrain (that is, ships in harbor) can have a defense penalty applied in this situation, via the unit class flag 'non_native_def_pct'. (This is distinct from the existing 'BadCityDefender' unit flag, which affects firepower.) ** Sea units' ability to attack neighbouring land is generalised as ability to attack non-native terrain, and controllable at unit class and type level ('AttackNonNative' and 'Only_Native_Attack' respectively). ** Sea units' attack from harbor is generalised as unit class ability to attack from city or transport in non-native terrain ('AttFromNonNative'). * Cities ** Cities can suffer ruleset-defined random disasters, whose effects can be mediated by the requirements system, and whose effects can be implemented by Lua script. ** The limit on trade routes per city can now vary during gameplay (up to a maximum of 5). Bonuses, ability to establish based on whether route is international and/or intercontinental, and what happens if a trade route becomes invalid are all now ruleset configurable. ** As well as the changes to nationality listed in the gameplay section: *** Rulesets can use the "Nationality" requirement in effects to test whether cities contain citizens of a specific nationality. *** Rulesets can control whether and how much enemy citizens cause unhappiness with the "Enemy_Citizen_Unhappy_Pct" effect. *** Rulesets can choose whether partisan appearance depends on the original city owner or the current nationality of the citizens, and if so what proportion is required for partisans. ** The 'Inspire_Partisans' effect can now depend on properties of a specific city, not just player-wide requirements. ** Specialists can now define a fallback graphics tag, so that rulesets with custom specialists can be played without tileset support. ** The image to display for a city (City_Image) is now calculated on the server side, allowing ruleset authors to use requirements for it that the client may not have reliable access to. ** The way city size is converted into a (cosmetic) population number is now more configurable. * Technology ** New effect 'Not_Tech_Source' prevents players from having technology stolen from them. ** When a player gets a free technology, the method used to choose it is defined in the ruleset in 'free_tech_method'. Instead of the previous behavior of giving the player their currently researched technology, the ruleset can now specify the cheapest or a random technology. ** New tech_upkeep_style 'Cities', where tech upkeep scales with number of cities. ** A player will no longer lose a technology (due to tech upkeep, etc) if it's a root_req for another technology the player knows. ** The ruleset can request that technology help be popped up in the client when a new technology is acquired, via 'popup_tech_help'. (This can be overridden by the user.) * Nations ** Nations can have an associated color; if the server setting 'plrcolormode' is set to the new value 'NATION_ORDER', players' colors will take this color. ** Rulesets can now define playable subsets of their nations ('nation sets'), one of which can be picked by players during game setup. This could be used for instance to define a number of different balanced sets of nations which have unique traits, perhaps tailored to different numbers of players. ** The list of supplied nations has been split out to a new 'nationlist.ruleset', so that rulesets can use these nations while changing other aspects of 'nations.ruleset'. nationlist.ruleset has its own lists of governments, terrains, etc, so that it can be used by rulesets that are slightly different without errors. * Effects and requirements ** 'Resource' added as requirement to effects system. ** City effects can now depend on the presence of terrain with certain properties within the city's workable radius, by specifying 'Terrain', 'Resource', etc with 'City' range. ** City effects can now place requirements on the city's own tile. ** Expanded the ability to group ruleset objects into sets for requirement purposes with custom flags: *** Terrains and technologies now have custom flags, as well as units, enabling limited disjunctive ("or") requirement definitions for these types. *** Requirements can test these flags. *** User flags now have ruleset-defined help text. *** The maximum number of user flags for unit types has increased from 4 to 16 (as these are used for the combat bonuses framework). ** For boolean effects, negative values are now evaluated as 'false', to ease ruleset development. * Lua scripting ** Updated scripting engine to Lua 5.2. ** Scripts can now set tile labels. ** Scripts can now run on a new 'map_generated' signal. * Misc ** It's now possible to have multiple centers of government for the purposes of calculating waste and corruption, through the 'Gov_Center' effect. The distance to the nearest determines waste. ** When a 'GameLoss' unit is killed, instead of the player's assets (units, cities, etc) just disappearing, the ruleset can cause some of them to be transferred to the conqueror, barbarians, and/or a new AI player ('gameloss_style'). ** Rulesets can specify a minimum area native to starting units that start positions must have ('min_start_native_area'). ** Rulesets can completely disable civil war ('civil_war_enabled'). ** Technologies with the 'Claim_Ocean' flag lift the normal restrictions on borders claiming ocean tiles. ** The ruleset can define a 'preferred_soundset' which will be suggested to clients. (Only Gtk2/3 clients can ask the user; with other clients the user has to have enabled auto-accept for this to take effect.) Tileset authors have a few new facilites. Existing tilesets need changes to work with 2.5 at all; see How to update a tileset from 2.4 to 2.5 for a minimal recipe. * When a unit is building a base or road, tilesets can now display an icon specific to that base/road. * The layer that darkness is drawn at is now configurable ('darkness_layer'). * Tilesets can now supply icons for unit upkeep greater than 2 to be displayed in the city dialog. * In the supplied tilesets, government and specialist icons have been split to separate files, so custom tilesets can replace them while continuing to use other graphics from the standard small.spec. Scenario creators have a couple of new features available. (Scenarios created with previous versions should continue to work in 2.5.) * Most of the supplied rulesets now include an 'Inaccessible' terrain type, for use by scenario authors to shape the map area. See the France scenario for an example of its use. * Scenarios can now restrict the set of available nations (to those with start positions). Changes affecting server operators * 'killstack', which controls whether all units on a tile die simultaneously, is now a server setting (previously it was controlled by the ruleset). * 'killcitizen' is now a boolean setting rather than a bitfield; which units reduce city population is now controlled by the ruleset. * A new server setting 'startcity' causes players to start with their first city already founded. * Two new values for the 'diplomacy' setting: "NOAI" which allows diplomacy except between AIs, and "NOMIXED" which only prevents human/AI diplomacy. * Failure to load a ruleset no longer causes the server to quit; it now reverts to the previously loaded ruleset, or failing that the default ruleset. * There's no longer support for attempting to save games in formats that might be compatible with previous major releases of Freeciv. The 'saveversion' server option has been removed. * The server no longer sets the socket option SO_REUSEADDR on its listening socket. This may fix some issues with clients connecting to the wrong server, particularly, on Windows. * The default database backend has changed from MySQL to SQLite. AI There have been some improvements to the standard AI's behavior: * Defense ** The AI should more correctly account for travel time when assessing danger to cities from enemy units; previously it treated them as its own, which could be wrong for ZoC, restrictinfra etc. ** Autosettlers are smarter about spotting danger: *** Sea and air units are now considered threats, not just land units. *** Military units which can't attack are no longer considered threats. ** Cities are less prone to building walls before defending units. ** The AI now considers non-land units that can conquer cities (such as Helicopters) a threat to continents it controls. * Unit handling ** Some fixes to AI's handling of boats as transports. * Terrain improvement ** The AI and autosettlers' relative weightings have been tweaked to give slightly better behavior with typical rulesets. In particular, production is now valued less compared to other outputs. ** The AI and autosettlers can now decide to build bases, if they provide any direct output bonus to a nearby city, or enable another base which does so. * Economy ** When the AI is on a war footing, it now prefers diverting taxes to science rather than luxury. ** The AI now considers keeping units in cities for their martial law effect, although it will not yet build units specially for this. ** The AI values coinage less, to balance it compared to gold-producing buildings. ** The AI may now create trade routes between continents. * Research ** The AI may now consider more combat bonuses when deciding what technology to research. For instance, it may now work harder towards AEGIS Cruiser when defending against air units. ** The AI no longer chases technologies to gain units that are already obsolete. ** The AI no longer remembers its past desire for long-obsolete technologies indefinitely. * Ruleset tolerance ** In rulesets which support ocean cities, the AI now considers building them. ** The AI no longer builds sea-only worker units if the ruleset has them. This is a temporary solution to a previous issue where AI would build only sea worker units when they became available, and not land ones. AI behavior is also now somewhat more configurable by rulesets: * The new traits framework allows AI behavior to be parameterised (current traits are Expansionist/Trader/Aggressive). Traits can be set in ruleset (overall or in specific nation description), or by Lua script. * 'Cheating' level AI no longer intrinsically ignores tax rate limitations. This is instead left up to the ruleset. The supplied rulesets give cheating AIs this bonus, so there no functional change. The following changes are only relevant to AI developers: * 'Default' AI logic, which was previously tied to the 'classic' AI type, can now be used selectively by custom AI modules, each with their own instance data. * The default AI type can be chosen at configure time. * Some progress has been made on the 'threaded' AI variant. It is now functional, but does not yet offer much advantage over the 'classic' AI. The only difference is that cities can make specific requests of worker units. The 'threaded' AI is not included in standard releases. Clients * The city map size in the city dialog now adapts to the ruleset. This means that the city dialog in the SDL client is no longer unusably small with the classic and similar rulesets. * The client now only lists scenarios for "Start Scenario Game"; previously it could include ordinary save files that happened to be on the scenario path. * Client options to control whether tileset and soundset suggestions made by the ruleset are automatically accepted. This allows clients other than the Gtk clients to make use of these suggestions. * (Gtk) The pregame nation selection dialog has been rewritten, fixing many small bugs. * (Gtk) The client can now optionally pop up help for a new technology when it's acquired. * It's now possible to play a game in the Qt client, although many features are still missing, so it's not yet a recommended client. A Qt version of the modpack installer is also available. Modpack installer * The modpack installer now keeps track of versions of packages it has previously installed. (It does not track changes made manually.) * A command-line tool for downloading modpacks, freeciv-mp-cli, has been created for use on headless servers. * The modpack installer can be built into multiple GUI flavored executables simultaneously. As a result, the executables have been renamed. * Modpacks can now have descriptions and a 'subtype' field (e.g. to distinguish iso/hex tilesets) . Tilesets / Art * The icons for entertainers, scientists, and tax collectors now have both male and female versions. * The base building icons in Amplio2 are now small versions of the bases themselves. * Improve colors for global warming / nuclear winter progress indicators. * Made a few specialist icons available for custom rulesets (worker, farmer, merchant). These are not used in the supplied rulesets. Translations * New Traditional Chinese localization. Build/portability * A real thread implementation is now a hard requirement. * The SDL client now requires SDL_gfx and SDL_ttf libraries. Copies are no longer included with the Freeciv source. * Clients other than the SDL client can now be built against SDL2_mixer. See doc/README.packaging for more information.